package com.ccsoft.zknote.pojo.system;


/**
 * 状态码统一为4位长度：
 * 1xxx：服务器接收到信息，但是出现异常导致请求不成功
 * 2xxx：请求成功
 * 3xxx：请求重定向之类
 * 4xxx：客户端错误，41xx表示参数异常，42xx表示账户以及密码异常
 * 5xxx：服务器内部错误
 * 6xxx：业务逻辑不完整或者冲突
 */
public enum ResultCode {

    // 5位长度的错误码，前面两位是分类，比如 10 开头表示登录以及用户相关，保留99个分类
    // 后面的3位表示该分类下的多种情况，保留999中错误情况
    OK("1", "OK"),
    ID_EXIST("10001", "ID重复"),
    LOGIN_INVALID("10002", "未登录或登录已状态失效"),
    PARAM_IS_BLANK("11001", "参数为空"),
    PARAM_LACK("11002", "参数个数不对"),
    USER_NOT_EXIST("11003", "用户不存在"),
    PASSWORD_ERROR("11004", "密码错误"),
    AUTHENTICATION_ERROR("11005", "账号或密码错误"),
    UNDEFINED_ERROR("0", "未定义的错误");

    private String code;
    private String msg;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    ResultCode() {
    }

    ResultCode(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    @Override
    public String toString() {
        return "ResultCode{" +
                "code='" + code + '\'' +
                ", msg='" + msg + '\'' +
                '}';
    }
}

